@Main
{
    @Envs()
    {
        @BindRoot($.msg)($.input.0)
        @BindRoot($.publish)($.input.1)
    }
    
    @Invalid($.msg)
    {
        @BindRoot($.msg)("小改动")
    }

    @Valid($.msg)
    {
        @Bind($.msg)($.msg)
        @Println("正在准备上传到仓库")
        @Command("git add .")
        @Command("git commit -m $.msg")
        @Command("git push origin master")
        @Println("成功上传到仓库")
        @Println("") 
    }

    @Invalid($.publish)
    {
        @Println("本次任务不执行 cargo publish")
    }

    @Valid($.publish)
    {
        @Bind($.publish)($.publish)
        @Println("正在准备发布 crate")
    }

    @Println("正在 build crate")
    @Command("cargo build --release")
    @Println("任务 build 完成")
}